import { IPSDELogicNodeBase } from './ipsdelogic-node-base';
import { IPSDEUILogicLink } from './ipsdeuilogic-link';
import { IPSDEUILogicNodeParam } from './ipsdeuilogic-node-param';
import { IPSDEUILogicParam } from './ipsdeuilogic-param';

/**
 *
 * 子接口类型识别属性[logicNodeType]
 * @export
 * @interface IPSDEUILogicNode
 */
export interface IPSDEUILogicNode extends IPSDELogicNodeBase {
  /**
   * 目标逻辑参数对象
   *
   * @type {IPSDEUILogicParam}
   */
  getDstPSDEUILogicParam(): IPSDEUILogicParam | null;

  /**
   * 逻辑节点连出连接集合
   *
   * @type {IPSDEUILogicLink[]}
   */
  getPSDEUILogicLinks(): IPSDEUILogicLink[] | null;

  findPSDEUILogicLink(objKey: any): IPSDEUILogicLink | null;

  /**
   * 逻辑节点参数集合
   *
   * @type {IPSDEUILogicNodeParam[]}
   */
  getPSDEUILogicNodeParams(): IPSDEUILogicNodeParam[] | null;

  findPSDEUILogicNodeParam(objKey: any): IPSDEUILogicNodeParam | null;

  /**
   * 源逻辑参数对象
   *
   * @type {IPSDEUILogicParam}
   */
  getSrcPSDEUILogicParam(): IPSDEUILogicParam | null;
}
